# @Time : 2021/9/19 21:21
# @Author : lsy
# @Contact: 363925670@qq.com
# main.py 阐述了HimedDao的使用方式

from HimedDao import HimedDao
from UserInfo import UserInfo
from DataInfo import DataInfo
from DaoUtils import HashUtils


# 测试代码
if __name__ == '__main__':

    # 实例化哈希工具
    hash_util = HashUtils()

    # 实例化数据库接口
    h = HimedDao()

    # 连接数据库
    if h.connect():
        print("连接成功。")
    else:
        print("连接失败。")
    print("")

    # 查看用户是否存在
    if h.is_user_exist("himed"):
        print("用户himed存在。")
    else:
        print("用户himed不存在。")
    print("")

    # 用户登录
    user, login_stat = h.login("himed", hash_util.to_sha1("111"))
    if login_stat:
        print("登录成功, 用户信息是：")
        print(user.user_id, user.user_name, user.password_sha1, user.priv, user.home_dir, user.email, user.phone, user.group_name)
    else:
        print("登陆失败。")
    print("")

    # 拉取用户账户数据
    data, search_stat = h.search_data_by_user(user)
    if search_stat:
        print("数据获取成功, 数据信息是：")
        for i in data:
            print(i.data_id, i.user_id, i.file_name, i.extension, i.type, i.size, i.date_time)
    else:
        print("数据获取失败。")
    print("")


    # 添加用户Mike
    tmp_user = UserInfo()
    # 构造用户
    tmp_user.user_name = "Mike"
    tmp_user.password_sha1 = hash_util.to_sha1("6789")
    tmp_user.priv = 1
    tmp_user.home_dir = "mike"
    tmp_user.email = "abcd123@fl.com"
    tmp_user.phone = "6555347785"
    tmp_user.group_name = "CAS"

    if h.user_add(tmp_user):
        print("添加用户Mike成功。")
    else:
        print("添加用户Mike失败。")
    print("")

    # 用户Mike登录
    tmp_user, login_stat = h.login("Mike", hash_util.to_sha1("6789"))
    if login_stat:
        print("登录成功, 用户信息是：")
        print(tmp_user.user_id, tmp_user.user_name, tmp_user.password_sha1, tmp_user.priv, tmp_user.home_dir, tmp_user.email, tmp_user.phone, tmp_user.group_name)
    else:
        print("登陆失败。")
    print("")

    # 修改Mike的email
    tmp_user.email = "123456@jkl.cn"
    if h.user_update(tmp_user):
        print("修改用户Mike成功。")
    else:
        print("修改用户Mike失败。")
    print("")

    # 刷新用户Mike的账户信息
    tmp_user, _ = h.user_info_refresh(tmp_user)
    print("刷新成功, {0}的用户信息是：".format(tmp_user.user_name))
    print(tmp_user.user_id, tmp_user.user_name, tmp_user.password_sha1, tmp_user.priv, tmp_user.home_dir, tmp_user.email, tmp_user.phone, tmp_user.group_name)
    print("")

    # 删除用户Mike
    if h.user_del(tmp_user):
        print("删除用户Mike成功。")
    else:
        print("删除用户Mike失败。")
    print("")

    # 断开连接
    if h.disconnect():
        print("断开连接。")
